package com.qdlc.p2p.biz.service;

import java.util.List;

import com.qdlc.p2p.dal.common.model.jpa.PageDataList;
import com.qdlc.p2p.dal.dto.CertificationType;
import com.qdlc.p2p.dal.dto.Operator;
import com.qdlc.p2p.dal.dto.User;
import com.qdlc.p2p.dal.dto.UserCertification;
import com.qdlc.p2p.dal.model.UserCertificationModel;

/**
 * 证明材料Service
 *
 * @author xx
 * @version 2.0
 * @since 2014年3月20日
 */
public interface UserCertificationService {

    /**
     * 列表
     *
     * @param userId
     * @param page
     * @return
     */
    public PageDataList<UserCertificationModel> list(long userId, int page);

    /**
     * 新增
     *
     * @param attestation
     */
    public void add(UserCertification attestation);

    /**
     * 获取有效证件列表
     *
     * @param userId status
     * @Auther:lijie
     */
    public PageDataList<UserCertificationModel> findByUserId(long userId, int status, int page);

    /**
     * 审核证明资料
     *
     * @param id
     * @param verifyRemark
     * @param status
     */
    public void certificationVerify(long id, String verifyRemark, int status, Operator operator);

    /**
     * 根据ID获得资料对象
     *
     * @param id
     * @return
     */
    public UserCertification findById(long id);

    /**
     * 根据用户和类型ID查找用户认证资料集合
     *
     * @param user
     * @param typeId
     * @return
     */
    public List<UserCertification> findByUserAndTypeId(User user,
                                                       long typeId);

    /**
     * 删除认证材料
     *
     * @param id
     */
    public void delete(long id);

    /**
     * 获得证明资料信息列表
     *
     * @param model
     * @return
     */
    public PageDataList<UserCertificationModel> userCertificationList(
            UserCertificationModel model);

    /**
     * 根据用户ID和类型ID查找图片路径类型集合
     *
     * @param userId
     * @param typeId
     * @return
     */
    public List<String> findByUserIdAndTypeId(long userId, long typeId);

}
